package com.five.wisdomClass.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.five.wisdomClass.entity.*;
import io.swagger.v3.oas.models.security.SecurityScheme;
import org.checkerframework.checker.units.qual.C;

import java.util.Date;
import java.util.List;

public interface ITeacherService {

    // 获取课程表
    List<Course> getCourses(String teacher);

    // 课程学生
    IPage<Student> getCourseStudents(Integer currentPage, Integer size,String courseNumber);

//    // 获取请假申请列表
//    IPage<Leave> getStudentLeaves(Integer currentPage, Integer size, String teacherNumber);

    // 获取课程中请假的学生
    IPage<Leave> getCourseStudentLeave(Integer currentPage, Integer size, String courseNumber);

    // 发布签到
    boolean postSignIn(Course course);

    // 获取所教课程
    List<Course> getTeachCourses(String teacherNumber);

    // 查看发布的签到列表
    IPage<SignInfo> getSignInfo(Integer currentPage, Integer size, String courseNumber);

    // 查看已签到的学生
    IPage<SignInfo> getSignStudents(Integer currentPage, Integer size, String postTime);

    // 查看未签到的学生
    IPage<SignInfo> getUnSignStudents(Integer currentPage, Integer size,String postTime);

    // 添加课程课
    boolean insertCourse(Course course);


    // 获取某门课程的课程情况
    IPage<Course> getOneCourseInfo(Integer currentPage, Integer size,String courseNumber);

    // 修改某堂课程
    boolean updateCourse(Course course);


    // 通过时间查询选修课
    IPage<TakeCourse>  selectTakeCourseByDate(Integer currentPage, Integer size, String time,String courseNumber);

    // 通过时间查询公共课
    IPage<PublicCourse>  selectPublicCourseByDate(Integer currentPage, Integer size, String time, String courseNumber);

}
